package com.designPattern.factoryMethod.creator;

import com.designPattern.factoryMethod.product.Pizza;

/**
 * 使用工厂方法的披萨商店，生产销售披萨
 */
public abstract class PizzaStore {
	
	/**
	 * 抽象工厂方法，子类实现，返回pizza
	 * @param type
	 * @return Pizza
	 */
	public abstract Pizza createPizza(String type);
	
	/**
	 * 订购披萨方法
	 * @param type
	 * @return Pizza
	 */
	public Pizza orderPizza(String type){
		Pizza pizza;
		//工厂方法创建pizza，由子类决定
		pizza = createPizza(type);
		
		pizza.prepare();
		pizza.bake();
		pizza.cut();
		pizza.box();
		
		return pizza;
	}
	
}
